package edu.bit.water.dao;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import edu.bit.water.entity.Authority;
import edu.bit.water.entity.EntityWater;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.dao.DuplicateKeyException;
import org.springframework.stereotype.Repository;

import edu.bit.water.entity.UserEntity;
import org.springframework.web.bind.annotation.RequestParam;

@Mapper
@Repository
public interface UserDao{
	
	UserEntity findByName(String name);
	UserEntity findById(int id);
	List<Map<String, Object>> selectEntityUser();
	int insertEntityUser(UserEntity user);
	int insertUser(UserEntity user);
	int updateUser(UserEntity user);
	int deleteEntityUser(int id);
	int updateEntityUser(Map<String, Object> map) throws DuplicateKeyException;
	int getMaxComId();
	int insertRole(@Param("userId") Integer userId, @Param("role") String role, @Param("operator") Integer operator);
	int deleteRole(@Param("userId") Integer userId);
	List<Integer> queryRoleByUserId(@Param("userId") String userId);
	String queryRoleName(@Param("roleId") Integer roleId);

	List<Map<String, Object>> selectEntityUserByCom(@Param("companyId") String companyId);
	List<Authority> getAuthority();
	int setAuthority(Authority authority);

	int testAdmin(@Param("userId") String userId);
	int updateUserReset(UserEntity user);
	int update_new_pwd(UserEntity user);
	UserEntity queryCodeTime(String verifycode);

	/**
	 * 根据用户id查询用户所在企业
	 * @param userId
	 * @return
	 */
	Integer getCompanyIdByUserId(@Param("userId") int userId);
}
